
/**
  ******************************************************************************
  * @file           : main.h
  * @brief          : Header for main.c file.
  *                   This file contains the common defines of the application.
  ******************************************************************************
  * @attention
  *
  * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
  * All rights reserved.</center></h2>
  *
  * This software component is licensed by ST under BSD 3-Clause license,
  * the "License"; You may not use this file except in compliance with the
  * License. You may obtain a copy of the License at:
  *                        opensource.org/licenses/BSD-3-Clause
  *
  ******************************************************************************
  */



#ifndef __MAIN_H
#define __MAIN_H

#ifdef __cplusplus
extern "C" {
#endif


#include "stm32l0xx_hal.h"
#include "stm32l0xx_hal.h"






















void Error_Handler(void);






#define LED1_Pin GPIO_PIN_13
#define LED1_GPIO_Port GPIOC
#define GPIO_UART_TXD_Pin GPIO_PIN_14
#define GPIO_UART_TXD_GPIO_Port GPIOC
#define LED_NET_Pin GPIO_PIN_15
#define LED_NET_GPIO_Port GPIOC
#define HL10_AT_Pin GPIO_PIN_0
#define HL10_AT_GPIO_Port GPIOH
#define HL10_WAKEUP_Pin GPIO_PIN_1
#define HL10_WAKEUP_GPIO_Port GPIOH
#define RS485_1_EN_Pin GPIO_PIN_4
#define RS485_1_EN_GPIO_Port GPIOA
#define LED2_Pin GPIO_PIN_6
#define LED2_GPIO_Port GPIOA
#define LED3_Pin GPIO_PIN_7
#define LED3_GPIO_Port GPIOA
#define EC20_PW_ON_Pin GPIO_PIN_0
#define EC20_PW_ON_GPIO_Port GPIOB
#define EC20_RESET_Pin GPIO_PIN_1
#define EC20_RESET_GPIO_Port GPIOB
#define LED4_Pin GPIO_PIN_12
#define LED4_GPIO_Port GPIOB
#define LED5_Pin GPIO_PIN_13
#define LED5_GPIO_Port GPIOB
#define LED6_Pin GPIO_PIN_14
#define LED6_GPIO_Port GPIOB
#define RSTI_9120_Pin GPIO_PIN_15
#define RSTI_9120_GPIO_Port GPIOB
#define CFG0_9120_Pin GPIO_PIN_8
#define CFG0_9120_GPIO_Port GPIOA
#define MCU_IO_IN_1_Pin GPIO_PIN_11
#define MCU_IO_IN_1_GPIO_Port GPIOA
#define MCU_IO_IN_2_Pin GPIO_PIN_12
#define MCU_IO_IN_2_GPIO_Port GPIOA
#define MCU_IO_IN_3_Pin GPIO_PIN_15
#define MCU_IO_IN_3_GPIO_Port GPIOA
#define MCU_IO_IN_4_Pin GPIO_PIN_3
#define MCU_IO_IN_4_GPIO_Port GPIOB
#define MCU_REALY_EN_1_Pin GPIO_PIN_4
#define MCU_REALY_EN_1_GPIO_Port GPIOB
#define MCU_REALY_EN_2_Pin GPIO_PIN_5
#define MCU_REALY_EN_2_GPIO_Port GPIOB
#define MCU_REALY_EN_3_Pin GPIO_PIN_6
#define MCU_REALY_EN_3_GPIO_Port GPIOB
#define MCU_REALY_EN_4_Pin GPIO_PIN_7
#define MCU_REALY_EN_4_GPIO_Port GPIOB
#define LED7_Pin GPIO_PIN_8
#define LED7_GPIO_Port GPIOB
#define LED8_Pin GPIO_PIN_9
#define LED8_GPIO_Port GPIOB



#define REC_LENGTH  1
#define MAX_REC_LENGTH  256


#define IO_LOW  HAL_GPIO_WritePin(GPIO_UART_TXD_GPIO_Port,GPIO_UART_TXD_Pin,GPIO_PIN_RESET)
#define IO_HIGH  HAL_GPIO_WritePin(GPIO_UART_TXD_GPIO_Port,GPIO_UART_TXD_Pin,GPIO_PIN_SET)

#define EC200T_PW_ON	HAL_GPIO_WritePin(EC20_PW_ON_GPIO_Port,EC20_PW_ON_Pin,GPIO_PIN_RESET)
#define EC200T_PW_OFF	HAL_GPIO_WritePin(EC20_PW_ON_GPIO_Port,EC20_PW_ON_Pin,GPIO_PIN_SET)
#define EC200T_RESET_ON	HAL_GPIO_WritePin(EC20_RESET_GPIO_Port,EC20_RESET_Pin,GPIO_PIN_SET)
#define EC200T_RESET_OFF	HAL_GPIO_WritePin(EC20_RESET_GPIO_Port,EC20_RESET_Pin,GPIO_PIN_RESET)

#define LED1_ON	 HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_SET)
#define LED1_OFF	 HAL_GPIO_WritePin(LED1_GPIO_Port,LED1_Pin,GPIO_PIN_RESET)
#define LED2_ON	 HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_SET)
#define LED2_OFF	 HAL_GPIO_WritePin(LED2_GPIO_Port,LED2_Pin,GPIO_PIN_RESET)
#define LED3_ON	 HAL_GPIO_WritePin(LED3_GPIO_Port,LED3_Pin,GPIO_PIN_SET)
#define LED3_OFF	 HAL_GPIO_WritePin(LED3_GPIO_Port,LED3_Pin,GPIO_PIN_RESET)
#define LED4_ON	 HAL_GPIO_WritePin(LED4_GPIO_Port,LED4_Pin,GPIO_PIN_SET)
#define LED4_OFF	 HAL_GPIO_WritePin(LED4_GPIO_Port,LED4_Pin,GPIO_PIN_RESET)
#define LED5_ON	 HAL_GPIO_WritePin(LED5_GPIO_Port,LED5_Pin,GPIO_PIN_SET)
#define LED5_OFF	 HAL_GPIO_WritePin(LED5_GPIO_Port,LED5_Pin,GPIO_PIN_RESET)
#define LED6_ON	 HAL_GPIO_WritePin(LED6_GPIO_Port,LED6_Pin,GPIO_PIN_SET)
#define LED6_OFF	 HAL_GPIO_WritePin(LED6_GPIO_Port,LED6_Pin,GPIO_PIN_RESET)
#define LED7_ON	 HAL_GPIO_WritePin(LED7_GPIO_Port,LED7_Pin,GPIO_PIN_SET)
#define LED7_OFF	 HAL_GPIO_WritePin(LED7_GPIO_Port,LED7_Pin,GPIO_PIN_RESET)
#define LED8_ON	 HAL_GPIO_WritePin(LED8_GPIO_Port,LED8_Pin,GPIO_PIN_SET)
#define LED8_OFF	 HAL_GPIO_WritePin(LED8_GPIO_Port,LED8_Pin,GPIO_PIN_RESET)

#define RELY1_ON	 HAL_GPIO_WritePin(MCU_REALY_EN_1_GPIO_Port,MCU_REALY_EN_1_Pin,GPIO_PIN_SET)
#define RELY1_OFF	 HAL_GPIO_WritePin(MCU_REALY_EN_1_GPIO_Port,MCU_REALY_EN_1_Pin,GPIO_PIN_RESET)
#define RELY2_ON	 HAL_GPIO_WritePin(MCU_REALY_EN_2_GPIO_Port,MCU_REALY_EN_2_Pin,GPIO_PIN_SET)
#define RELY2_OFF	 HAL_GPIO_WritePin(MCU_REALY_EN_2_GPIO_Port,MCU_REALY_EN_2_Pin,GPIO_PIN_RESET)
#define RELY3_ON	 HAL_GPIO_WritePin(MCU_REALY_EN_3_GPIO_Port,MCU_REALY_EN_3_Pin,GPIO_PIN_SET)
#define RELY3_OFF	 HAL_GPIO_WritePin(MCU_REALY_EN_3_GPIO_Port,MCU_REALY_EN_3_Pin,GPIO_PIN_RESET)
#define RELY4_ON	 HAL_GPIO_WritePin(MCU_REALY_EN_4_GPIO_Port,MCU_REALY_EN_4_Pin,GPIO_PIN_SET)
#define RELY4_OFF	 HAL_GPIO_WritePin(MCU_REALY_EN_4_GPIO_Port,MCU_REALY_EN_4_Pin,GPIO_PIN_RESET)

#define RSTI_9120_LOW	HAL_GPIO_WritePin(RSTI_9120_GPIO_Port,RSTI_9120_Pin,GPIO_PIN_RESET)
#define RSTI_9120_HIGH	HAL_GPIO_WritePin(RSTI_9120_GPIO_Port,RSTI_9120_Pin,GPIO_PIN_SET)
#define CFG0_9120_LOW	HAL_GPIO_WritePin(CFG0_9120_GPIO_Port,CFG0_9120_Pin,GPIO_PIN_RESET)
#define CFG0_9120_HIGH	HAL_GPIO_WritePin(CFG0_9120_GPIO_Port,CFG0_9120_Pin,GPIO_PIN_SET)

#define LEDNET_ON	 HAL_GPIO_WritePin(LED_NET_GPIO_Port,LED_NET_Pin,GPIO_PIN_SET)
#define LEDNET_OFF	 HAL_GPIO_WritePin(LED_NET_GPIO_Port,LED_NET_Pin,GPIO_PIN_RESET)

#define RS485_HIGH	 	HAL_GPIO_WritePin(RS485_1_EN_GPIO_Port,RS485_1_EN_Pin,GPIO_PIN_SET)
#define RS485_LOW	 		HAL_GPIO_WritePin(RS485_1_EN_GPIO_Port,RS485_1_EN_Pin,GPIO_PIN_RESET)


char lowhextoascii(char hexdata);
void Write_Config_Localip(void);
void Write_flash_Config_DHCP(void);
uint8_t Wait_Local_Config_cmd(void);



#ifdef __cplusplus
}
#endif

#endif 


